//
//  StretchableTableHeaderView.m
//  StretchableTableHeaderView
//

#import "HFStretchableTableHeaderView.h"

@interface HFStretchableTableHeaderView(){
    CGRect initialFrame;
    CGFloat defaultViewHeight;
}

@end

@implementation HFStretchableTableHeaderView

@synthesize tableView = _tableView;
@synthesize view = _view;

/**
 初始化拉伸视图
 
 @param tableView UITableView
 @param view UIView
 */
- (void)stretchHeaderForTableView:(UITableView*)tableView withView:(UIView*)view {
    //表
    _tableView = tableView;
    //拉伸视图
    _view = view;
    //拉伸视图 Frame
    initialFrame = _view.frame;
    //拉伸视图高度
    defaultViewHeight = initialFrame.size.height;
    
    UIView *emptyTableHeaderView = [[UIView alloc] initWithFrame:initialFrame];
    emptyTableHeaderView.backgroundColor = [UIColor clearColor];
    _tableView.tableHeaderView = emptyTableHeaderView;
    
    [_tableView addSubview:_view];
}

/**
 重写UIScrollView scrollViewDidScroll方法
 
 @param scrollView UIScrollView
 */
- (void)scrollViewDidScroll:(UIScrollView*)scrollView {
    CGRect f = _view.frame;
    f.size.width = _tableView.frame.size.width;
    _view.frame = f;
    
    if(scrollView.contentOffset.y < 0) {
        CGFloat offsetY = (scrollView.contentOffset.y + scrollView.contentInset.top) * -1;
        //纵向拉伸
        initialFrame.origin.y = offsetY * -1;
        initialFrame.size.height = defaultViewHeight + offsetY;
        //横向拉伸
        initialFrame.origin.x = - offsetY / 2.0;
        initialFrame.size.width  = _tableView.frame.size.width + offsetY;
        
        _view.frame = initialFrame;
    } else {
        initialFrame.origin.x = 0;
        initialFrame.size.width = _tableView.frame.size.width;
        _view.frame = initialFrame;
    }
}

/**
 重置拉伸视图大小
 */
- (void)resizeView {
    initialFrame.size.width = _tableView.frame.size.width;
    _view.frame = initialFrame;
}

@end
